const { MilvusClient,DataType } = require('@zilliz/milvus2-sdk-node');
//创建客户端
const milvusClient = new MilvusClient({
    address: 'localhost:19530',
    timeout: 100000
})
const db_name = 'blog';
const collection_name = 'articles';
(async function () {
    try {
        //列出当前的哪些数据库
        const result = await milvusClient.listDatabases();
        console.log(result.db_names);//[ 'blog', 'default' ]
        const dbExsits = result.db_names.includes(db_name)
        if (!dbExsits) {
            //创建新的数据库
            await milvusClient.createDatabase({ db_name });
            console.log('数据库创建成功')
        }
        //切换到新的数据库
        await milvusClient.useDatabase(db_name);
        console.log('已经成功切换到了' + db_name);
        //定义集合的schema
        const userSchema = {
            collection_name,//指定集合的名称
            description:'文章信息集合',
            //指定集合的字段的列表
            fields:[
                {
                    name:'id',//定义ID字段
                    data_type:DataType.Int64,//设置数据类型为64位整数
                    is_primary_key:true,//是否设置为主键
                    autoID:false//设置禁止自动生成ID
                },
                {
                    name:'title',//定义标题字段
                    data_type:DataType.VarChar,//设置数据类型为可变长度字符串
                    max_length:512
                },
                {
                    name:'title_vector',//标题向量字段
                    data_type:DataType.FloatVector,//设置数据类型浮点向量
                    dim:3,//设置向量的维度
                }
            ]
        }
        await milvusClient.createCollection(userSchema);
        console.log('集合创建成功')
        const {collection_names} = await milvusClient.listCollections();
        console.log(collection_names)
    } catch (error) {
        await milvusClient.closeConnection();
        process.exit(1)
    }

})()